#include "function.h"

//屏幕宽度
int mScreenW;
//屏幕高度
int mScreenH;
//屏幕像素密度
float mScreenD;
//程序块调用码
int funnumber;
int prefunnumber;
int logonnumber;

static int onResumenum;

/*--------主页---------*/
jobject MmBitmap[IMGSIZE];
PBUTTON headButton;
/*--------网络---------*/


/*--------关于---------*/
//数据体
PBUTTON aboutButton;

struct DearT*Deart;
/*--------贪吃蛇---------*/
//蛇宽高
#define SWH 35
#define TEXTH 32 //字体大小

int kzfx;//控制方向
int foodx;//食物坐标
int foody;
int score;//分数


NODE*snakeheadnode;


/*--------聊天室---------*/
AbsLayout Abslayout;//主绝对布局;
RelativeLayout Rellayout1;//创建相对布局1
RelativeLayout Rellayout2;//创建相对布局2
Button button1;
Button button2;
Button button3;
EditText editmessage;//消息编辑框
char messbuf[100];//消息缓存
/*--------登录---------*/
PBUTTON logonButton;
RelativeLayout Rellayout;//创建主相对布局
EditText editname;//用户名编辑框
EditText editpassword;//密码编辑框
//char UserName[20];   //用户名
//char PassWord[20];   //密码
RLayoutParams rlp;//创建主相对布局参数
RLayoutParams rlp1;//创建相对布局参数
RLayoutParams rlp2;//创建相对布局参数
RLayoutParams rlp3;//创建相对布局参数
/*--------关于---------*/

//在界面启动时调用
void functiononCreate(int a)
{
	
	//获取屏幕宽度
	mScreenW = getScreenWidth();
	//屏幕高度
	mScreenH = getScreenHeight();
	//屏幕像素密度
	mScreenD = getScreenDensity();
	switch(a)
	{
	case 0://主菜单
		menuCreate();//在程序启动时调用
		break;
	case 1://关于
		aboutCreate();//在程序启动时调用
		break;
	case 2://贪吃蛇
		snakeCreate();//在程序启动时调用
		break;
	case 3://聊天室
		chatCreate();//在程序启动时调用
		break;
	case 4://扫雷
		staradCreate();//在程序启动时调用
		break;
	case 5://登录页
		fivezCreate();//在程序启动时调用
		break;
	case 6:
		bezierCreate();//在程序启动时调用
		break;
	case 7:
		Create();//在程序启动时调用
		break;
	case 8:
		Create();//在程序启动时调用
		break;
	case 9:
		Create();//在程序启动时调用
		break;
	case 10:
		Create();//在程序启动时调用
		break;
	case 11:
		Create();//在程序启动时调用
		break;
	case 12:
		Create();//在程序启动时调用
		break;
	case 13:
		Create();//在程序启动时调用
		break;
	case 14:
		Create();//在程序启动时调用
		break;
	case 15:
		Create();//在程序启动时调用
		break;
	case 16:
		Create();//在程序启动时调用
		break;
	case 17:
		Create();//在程序启动时调用
		break;
	case 18:
		Create();//在程序启动时调用
		break;
	case 19:
		Create();//在程序启动时调用
		break;
	case 20:
		Create();//在程序启动时调用
		break;
	case 21:
		Create();//在程序启动时调用
		break;
	case 22:
		Create();//在程序启动时调用
		break;
	case 23:
		Create();//在程序启动时调用
		break;
	case 24://登录
		Create();//在程序启动时调用
		break;
	case 25:
		Create();//在程序启动时调用
		break;
	case 26:
		Create();//在程序启动时调用
		break;
	case 27:
		Create();//在程序启动时调用
		break;
	case 28:
		Create();//在程序启动时调用
		break;
	case 29:
		logonCreate();//在程序启动时调用
		break;
		
	}
}
//只能在这里绘图
void functiononDraw(int a,int left,int top,int right,int bottom,Canvas canvas)
{
	switch(a)
	{
	case 0://主菜单
		menuDraw(left,top,right,bottom,canvas);//只能在这里绘图
		break;
	case 1://关于
		aboutDraw(left,top,right,bottom,canvas);//
		break;
	case 2://贪吃蛇
		snakeDraw(left,top,right,bottom,canvas);//
		break;
	case 3://聊天室
		chatDraw(left,top,right,bottom,canvas);//
		break;
	case 4:
		staradDraw(left,top,right,bottom,canvas);//
		break;
	case 5:
		fivezDraw(left,top,right,bottom,canvas);//
		break;
	case 6:
		bezierDraw(left,top,right,bottom,canvas);//
		break;
	case 7:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 8:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 9:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 10:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 11:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 12:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 13:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 14:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 15:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 16:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 17:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 18:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 19:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 20:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 21:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 22:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 23:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 24://登录
		Draw(left,top,right,bottom,canvas);//
		break;
	case 25:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 26:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 27:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 28:
		Draw(left,top,right,bottom,canvas);//
		break;
	case 29:
		logonDraw(left,top,right,bottom,canvas);//
		break;
		
	}
}
//触摸事件调用
void functiononTouchEvent(int a,int action,float x,float y,int index,int count,float pointersX[],float pointersY[],int pointersId[])
{
	switch(a)
	{
	case 0://主菜单
		menuTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);
		break;
	case 1://关于
		aboutTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//关于
		break;
	case 2://贪吃蛇
		snakeTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 3://聊天室
		chatTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 4:
		staradTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 5://登录页
		fivezTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 6:
		bezierTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 7:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 8:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 9:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 10:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 11:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 12:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 13:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 14:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 15:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 16:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 17:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 18:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 19:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 20:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 21:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 22:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 23:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 24://登录
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 25:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 26:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 27:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 28:
		TouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
	case 29:
		logonTouchEvent(action,x,y,index,count,pointersX,pointersY,pointersId);//
		break;
		
	}
}
//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
void functionSizeChange(int a,int w,int h,int oldw,int oldh,float density)
{
	switch(a)
	{
	case 0://主菜单
		menuSizeChange(w,h,oldw,oldh,density);
		break;
	case 1://关于
		aboutSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 2://贪吃蛇
		snakeSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 3://聊天室
		chatSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 4:
		staradSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 5:
		fivezSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 6:
		bezierSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 7:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 8:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 9:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 10:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 11:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 12:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 13:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 14:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 15:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 16:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 17:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 18:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 19:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 20:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 21:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 22:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 23:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 24://登录
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 25:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 26:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 27:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 28:
		SizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
	case 29:
		logonSizeChange(w,h,oldw,oldh,density);//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
		break;
		
	}
}
//系统每1毫秒就会调用这个方法1次
void functiononLoopCall(int a)
{
	switch(a)
	{
	case 0://主菜单
		menuLoopCall();//每1毫秒就会调用这个方法1次
		break;
	case 1://关于
		aboutLoopCall();
		break;
	case 2://贪吃蛇
		snakeLoopCall();
		break;
	case 3://聊天室
		chatLoopCall();
		break;
	case 4:
		staradLoopCall();
		break;
	case 5:
		fivezLoopCall();
		break;
	case 6:
		bezierLoopCall();
		break;
	case 7:
		LoopCall();
		break;
	case 8:
		LoopCall();
		break;
	case 9:
		LoopCall();
		break;
	case 10:
		LoopCall();
		break;
	case 11:
		LoopCall();
		break;
	case 12:
		LoopCall();
		break;
	case 13:
		LoopCall();
		break;
	case 14:
		LoopCall();
		break;
	case 15:
		LoopCall();
		break;
	case 16:
		LoopCall();
		break;
	case 17:
		LoopCall();
		break;
	case 18:
		LoopCall();
		break;
	case 19:
		LoopCall();
		break;
	case 20:
		LoopCall();
		break;
	case 21:
		LoopCall();
		break;
	case 22:
		LoopCall();
		break;
	case 23:
		LoopCall();
		break;
	case 24://登录
		LoopCall();
		break;
	case 25:
		LoopCall();
		break;
	case 26:
		LoopCall();
		break;
	case 27:
		LoopCall();
		break;
	case 28:
		LoopCall();
		break;
	case 29:
		logonLoopCall();
		break;
		
	}
}
//返回键被按下事件，如果 返回0则退出程序，
int functionBackPressed(int a)
{
	switch(a)
	{
	case 0://主菜单
		menuBackPressed();//返回键按下被调用
		break;
	case 1://关于
		aboutBackPressed();//返回键按下被调用
		break;
	case 2://贪吃蛇
		snakeBackPressed();//返回键按下被调用
		break;
	case 3://聊天室
		chatBackPressed();//返回键按下被调用
		break;
	case 4:
		staradBackPressed();//返回键按下被调用
		break;
	case 5:
		fivezBackPressed();//返回键按下被调用
		break;
	case 6:
		bezierBackPressed();//返回键按下被调用
		break;
	case 7:
		BackPressed();//返回键按下被调用
		break;
	case 8:
		BackPressed();//返回键按下被调用
		break;
	case 9:
		BackPressed();//返回键按下被调用
		break;
	case 10:
		BackPressed();//返回键按下被调用
		break;
	case 11:
		BackPressed();//返回键按下被调用
		break;
	case 12:
		BackPressed();//返回键按下被调用
		break;
	case 13:
		BackPressed();//返回键按下被调用
		break;
	case 14:
		BackPressed();//返回键按下被调用
		break;
	case 15:
		BackPressed();//返回键按下被调用
		break;
	case 16:
		BackPressed();//返回键按下被调用
		break;
	case 17:
		BackPressed();//返回键按下被调用
		break;
	case 18:
		BackPressed();//返回键按下被调用
		break;
	case 19:
		BackPressed();//返回键按下被调用
		break;
	case 20:
		BackPressed();//返回键按下被调用
		break;
	case 21:
		BackPressed();//返回键按下被调用
		break;
	case 22:
		BackPressed();//返回键按下被调用
		break;
	case 23:
		BackPressed();//返回键按下被调用
		break;
	case 24://登录
		BackPressed();//返回键按下被调用
		break;
	case 25:
		BackPressed();//返回键按下被调用
		break;
	case 26:
		BackPressed();//返回键按下被调用
		break;
	case 27:
		BackPressed();//返回键按下被调用
		break;
	case 28:
		BackPressed();//返回键按下被调用
		break;
	case 29:
		logonBackPressed();//返回键按下被调用
		break;
		
	}
}
//界面销毁时调用
void functionDestroy(int a)
{
	switch(a)
	{
	case 0://主菜单
		menuDestroy();//界面销毁被调用
		break;
	case 1://关于
		aboutDestroy();//about界面销毁被调用
		break;
	case 2://贪吃蛇
		snakeDestroy();//界面销毁被调用
		break;
	case 3://聊天室
		chatDestroy();//界面销毁被调用
		break;
	case 4:
		staradDestroy();//界面销毁被调用
		break;
	case 5:
		fivezDestroy();//界面销毁被调用
		break;
	case 6:
		bezierDestroy();//界面销毁被调用
		break;
	case 7:
		Destroy();//界面销毁被调用
		break;
	case 8:
		Destroy();//界面销毁被调用
		break;
	case 9:
		Destroy();//界面销毁被调用
		break;
	case 10:
		Destroy();//界面销毁被调用
		break;
	case 11:
		Destroy();//界面销毁被调用
		break;
	case 12:
		Destroy();//界面销毁被调用
		break;
	case 13:
		Destroy();//界面销毁被调用
		break;
	case 14:
		Destroy();//界面销毁被调用
		break;
	case 15:
		Destroy();//界面销毁被调用
		break;
	case 16:
		Destroy();//界面销毁被调用
		break;
	case 17:
		Destroy();//界面销毁被调用
		break;
	case 18:
		Destroy();//界面销毁被调用
		break;
	case 19:
		Destroy();//界面销毁被调用
		break;
	case 20:
		Destroy();//界面销毁被调用
		break;
	case 21:
		Destroy();//界面销毁被调用
		break;
	case 22:
		Destroy();//界面销毁被调用
		break;
	case 23:
		Destroy();//界面销毁被调用
		break;
	case 24://登录
		Destroy();//界面销毁被调用
		break;
	case 25:
		Destroy();//界面销毁被调用
		break;
	case 26:
		Destroy();//界面销毁被调用
		break;
	case 27:
		Destroy();//界面销毁被调用
		break;
	case 28:
		Destroy();//界面销毁被调用
		break;
	case 29:
		logonDestroy();//界面销毁被调用
		break;
		
	}
}


//应用被暂停时调用，例如被后台运行
void onPause()
{
  onResumenum++;
   // showToastText("on pause",0);
}

//应用被恢复时调用，例如从后台运行转为前台运行
void onResume()
{   
   // if(IsOnline)
	{

	}
 }


/********************************************以下函数不使用******************************************/

//在程序启动时调用
void onCreate()
{
	onResumenum=0;
  
	if(onResumenum<1)
	{
		intnetCreate();	//界面启动时调用
   // IsOnline = false;
	funnumber = 29;//调用界面
	prefunnumber = funnumber;
	functiononCreate(funnumber);
	}
}

//触摸事件调用
void onTouchEvent(int action,float x,float y,int index,int count,float pointersX[],float pointersY[],int pointersId[])
{
   // intnetTouchEvent(funnumber,action,x,y,index,count,pointersX,pointersY,pointersId);
	functiononTouchEvent(funnumber,action,x,y,index,count,pointersX,pointersY,pointersId);

}

//只能在这里绘图
void onDraw(int left,int top,int right,int bottom,Canvas canvas)
{
   // intnetDraw(funnumber,left,top,right,bottom,canvas);
	functiononDraw(funnumber,left,top,right,bottom,canvas);

}

//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
void onSizeChange(int w,int h,int oldw,int oldh,float density)
{
	//intnetSizeChange(funnumber,w,h,oldw,oldh,density);
	//屏幕大小发生变化时被调用 ，程序在启动后会调用一次
	functionSizeChange(funnumber,w,h,oldw,oldh,density);
}

//系统每1毫秒就会调用这个方法1次
void onLoopCall()
{
	//  if(prefunnumber!=funnumber)
	{
		//		functionDestroy(prefunnumber);//界面销毁被调用
		//		functiononCreate(funnumber);	//在界面启动时调用
		prefunnumber = funnumber;
	}
	//系统每1毫秒就会调用这个方法1次
	intnetLoopCall();
	functiononLoopCall(funnumber);

}
//返回键被按下事件，如果 返回0则退出程序，
int onBackPressed()
{
   //return  intnetBackPressed();
	return functionBackPressed(funnumber);

	//return 0;
}

//程序在被销毁时调用
void onDestroy()
{
	char exitmess[5] = "exit";
  //  ParseCommand(exitmess);
	intnetDestroy();
	functionDestroy(funnumber);
	exit(0);
}